/*
 * @Author: QinJiu
 * @Date: 2022-07-20 09:09:50
 * @LastEditors: Qinjiu
 * @LastEditTime: 2022-07-22 09:50:53
 * @Description:
 */
const { defineConfig } = require("@vue/cli-service");
const webpack = require("webpack");

//获取路径
const path = require("path");
function resolve(dir) {
  return path.join(__dirname, dir);
}

module.exports = defineConfig({
  transpileDependencies: true,
  // devServer: {
  //   proxy: {
  //     '/api': {
  //       target: 'http://10.10.10.72:8669',
  //       logLevel: 'debug', // 打印代理日志
  //       changeOrigin: true,
  //       emulateJSON: true
  //       // pathRewrite: {
  //       //   "^/": "",
  //       // },
  //     }
  //   },
  //   // port: 8080,
  //   open: true
  // }
  configureWebpack: {
    name: "Vue项目", // 应用程序标题
    resolve: {
      alias: {
        "@": resolve("src"),
      },
      fallback: { path: require.resolve("path-browserify") },
    },
    plugins: [
      // 注入全局变量
      new webpack.ProvidePlugin({
        _: "lodash",
        moment: "moment",
      }),
    ],
  },
  chainWebpack: (config) => {
    // set svg-sprite-loader 配置解析遍历svg
    config.module.rule("svg").exclude.add(resolve("src/assets/svg")).end();
    config.module
      .rule("icons")
      .test(/\.svg$/)
      .include.add(resolve("src/assets/svg"))
      .end()
      .use("svg-sprite-loader")
      .loader("svg-sprite-loader")
      .options({
        symbolId: "icon-[name]",
      })
      .end();

    if (process.env.NODE_ENV === "production") {
      // 为生产环境修改配置...
    } else {
      // 为开发环境修改配置...
      // 全局lodash
      // config.resolve.alias.set('_', 'lodash');
    }
  },
});
